The use of virtualization is becoming widespread. Virtualization describes a software abstraction that separates a computer resource and its use from an underlying physical device. Generally, a virtual machine (VM) provides a software execution environment and may have a virtual processor, virtual system memory, virtual storage, and various virtual devices. Virtual machines have the ability to accomplish tasks independent of particular hardware implementations or configurations. System virtualization is implemented through some managing functionality, typically hypervisor technology. Hypervisors, also called virtual machine managers (VMMs), use a thin layer of code in software or firmware to achieve fine-grained, dynamic resource sharing. Because hypervisors provide the greatest level of flexibility in how virtual resources are defined and managed, they are generally the primary technology for system virtualization.
Virtual machines may be migrated between a source host computing platform (“the source host”) and a destination host computing platform (“the destination host”) connected over a network, which may be a local area network or a wide area network that may include the Internet. Migration can include a move from a source environment to a target environment where the source environment is separate and under different management and security control than the target environment. Whole-instance migration includes capturing an entire operating system (OS) with the software and data included in image form, transferring the system to a new environment and restarting the system. Whole-instance migration is often needed when a customer does not have sufficient documentation of their applications for easy re-install. In addition, whole-instance migration can capture changes that were made to the server after the initial server setup that were not properly documented.
Virtual to virtual (V2V) server migrations and physical to virtual (P2V) server migrations are typically performed by tools that write from a customer zone onto a hypervisor in a cloud environment, such as an infrastructure-as-a-service (IaaS) virtual machine, where the customer zone is a secure network, protected by firewalls, and where both the customer and a cloud administrator have access. Often, such as in a cloud environment which typically serves multiple customers, the target hypervisor, a key component in securing separation between customers, is in a secured environment, such that data flow directly from the customer zone is not permitted. In order to address network security, migration may be performed across multiple intermediate zones, requiring multiple copy steps. In addition, cross-zone traffic may have to pass through firewalls and may be restricted in bandwidth, while storage at intermediate steps may limit scalability.